The Discrete Cosine Transform ("DCT") has been widely used in digital signal processing, especially for image and speech because it approaches the statistically optimal Karhunen-Loeve transform for highly correlated signals. For image compression applications, the two-dimensional separable DCT has been widely used in many international image compression standards, such as the Joint Photographic Experts Group, ("JPEG"), Comite Consulatif International Telegraphique et Telephonique Recommendation H.261-Video Codec for Audiovisual Services at px64 Kbit/s ("CCITT H.261") and the Motion Pictures Expert Group Phase 1 and Phase 2 video compression standards ("MPEG-1 and MPEG-2").
While DCTs may be implemented by software on general-purpose digital computers, they are more typically implemented by dedicated hardware in video encoders and decoders. In the case of hardware implementation, fixed point arithmetic is normally employed because of speed requirements for the hardware. However, there is an inherent accuracy problem due to the finite word length in fixed-point arithmetic. For image compression, when an encoder and decoder use inverse DCT ("IDCT") with different implementations, by using either a different IDCT method or different arithmetic precision, a difference may occur in the reconstructed pixels between the encoder and the decoder until intraframe data is sent to the decoder for refresh. This difference may accumulate and become visible in the decoded picture. This phenomena is called IDCT mismatch since the visible distortion in the decoded picture is caused by different IDCT implementations in the encoder and decoder. IDCT mismatch is a serious problem for high quality coding schemes such as those conforming to the MPEG-1 and MPEG-2 standards. Thus, in order to get high coding quality, IDCT mismatch must be controlled.
There have been several approaches to controlling IDCT mismatch. One approach is known as intra refreshing. In intra refreshing, an image sequence is cyclically intra-frame coded which allows the current picture to be coded without reference to either previous pictures or future pictures. Thus, any distortion accumulated in the reference picture cannot affect the current picture. This approach may be effective in removing errors caused by either IDCT mismatch or coding. However, as the refresh interval is restricted by bitrate and bandwidth limitations, a chosen refresh interval may not adequately control IDCT mismatch. Moreover, since intra-frame-coded pictures require more bits to be coded than do inter-frame-coded pictures, considerable coding efficiency may be lost if the refresh interval is small enough to avoid IDCT mismatch. Therefore, the intra refreshing approach may not be a good solution to the IDCT mismatch problem under all conditions.
Another approach to controlling IDCT mismatch includes oddification methods which must be used in both the encoder and decoder. In this approach, the reconstructed or dequantization data is oddified at both the encoder and the decoder sides before the IDCT step. Oddification methods may give good results for low to medium quality coding since the oddification of the reconstructed value may prevent distortion from accumulating in the decoder. However, oddification cannot control IDCT mismatch under all coding conditions, nor is it suitable for high quality coding.